﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using SlideShow.Models;

namespace SlideShow.Controllers
{
    public class CursosController : Controller
    {
        CursosPortal.CursosClient cursoPortal = new CursosPortal.CursosClient();

        private MdlCursos CursoServ_to_Curso(CursosPortal.Curso curso)
        {
            MdlCursos Curso = new MdlCursos { id = curso.id, nombre = curso.nombre, tipo = curso.tipo, responsable = curso.responsable, duracionHoras = curso.duracionHoras, preRequisito = curso.preRequisito };
            return Curso;

        }   

        private List<MdlCursos> ListarCurso()
        {

            List<CursosPortal.Curso> lista_Curso = cursoPortal.listarCursos().ToList();

            List<MdlCursos> Lista_retorna = new List<MdlCursos>();
            foreach (CursosPortal.Curso element in lista_Curso)
            {
                Lista_retorna.Add(CursoServ_to_Curso(element));
            }
            return Lista_retorna;
        }

        // muestra el listado

        public ActionResult Index()
        {
            List<MdlCursos> model = ListarCurso();
            return View(model);
        }



        private MdlCursos ObtenerCursos(int id)
        {
            CursosPortal.Curso cursopor = new CursosPortal.Curso();

            cursopor = cursoPortal.obtenerCurso(id);

            return CursoServ_to_Curso(cursopor);
        }


        //Muestra página con los datos de un usuario

        public ActionResult Details(int id)
        {

            MdlCursos model = this.ObtenerCursos(id);
            return View(model);
        }


        //metodo crear comentado
        //[HttpPost]
        //public ActionResult Create(FormCollection collection)
        //{
        //    try
        //    {

        //        cursoPortal.crearCurso((string)collection["nombre"], (string)collection["tipo"], (string)collection["responsable"], (int)Convert.ToInt32(collection["duracionHoras"]), (string)collection["preRequisito"]);
        //        return RedirectToAction("Index");
        //    }
        //    catch
        //    {
        //        return View();
        //    }
        //}

        //public ActionResult Create()
        //{
        //    return View();
        //} 


        //
        // POST: /Cursos/Edit/5

        [HttpPost]
        public ActionResult Edit(int id, FormCollection collection)
        {
            try
            {
                MdlCursos oCurso = ObtenerCursos(id);
                //oCurso.nombre = collection["nombre"];
                //oCurso.tipo = collection["tipo"];
                oCurso.responsable = collection["responsable"];
                //oCurso.duracionHoras = Convert.ToInt32(collection["duracionHoras"]);
                cursoPortal.modificarCurso(oCurso.id, oCurso.nombre, oCurso.tipo, oCurso.responsable, oCurso.duracionHoras, oCurso.preRequisito);
                return RedirectToAction("Index");
            }
            catch
            {
                return View();
            }
        }

        public ActionResult Edit(int id)
        {
            MdlCursos model = ObtenerCursos(id);
            return View(model);
        }
    }
}
